home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-27 | 41.9 KB | 1,096 lines |
- THE IAK ON TIA FAQ
-
- This file is the FAQ (Frequently Asked Questions) for persons wishing to run
- IAK (IBM's OS/2 Internet Access Kit) on TIA (The Internet Access). See also
- the related FAQ list at the bottom of the file (especially the TIA FAQ).
-
- WHAT IS THIS ALL ABOUT ?
-
- The IAK was introduced by IBM as part of a "bonus pack" with the OS/2 3.0
- (Warp) operating system. The IAK could be said to simply allow access to the
- Internet via a set of programs that run as graphical applications under
- the workplace shell (still often referred to as the PM or presentation
- manager).
- Right now there are basically four levels of internet access:
-
- 1. Mail only. This allows you to mail from your own familiar interface across
- to users on the net. You may not even be aware that your mail crosses the
- net.
-
- 2. Via "service", such as AOL (America On Line). These services provide menus
- and other Internet services.
-
- 3. Shell account. A shell account lets you log onto someone else's host that
- itself connects to the Internet. You use their operating systems commands
- (usually Unix) to gain access to the net. Because you are dialing up with a
- terminal emulation, this means that you are restricted to text mode programs
- only. However, because the host is truly "on" the net, you can gain access
- to any part of the net, usually using multiple programs to do so.
-
- 4. Direct connect. This is the "holy grail" of Internet service. It means that
- you have a direct connection to the net, and your computer speaks the language
- of the net (TCP/IP). Any access to the net you have is via programs that run
- on your own machine, and know how to access various Internet services.
-
- Up to now, direct connect has been the exceptional mode of Internet access.
- This is because it traditionally involves leased lines, special hardware,
- and special protocols. The expense of a direct connect ($1000 and up a month)
- usually means that a large company will create a connection and then connect
- that (via a "gateway") to their own network, allowing their staff to share
- it.
- Over time, another, cheaper means of achiving direct connect has appeared,
- known as "slip" (Serial Line Internet Protocol), and later "ppp" (Point to Point
- Protocol). What these protocols do is allow the Internet "native" communications
- protocol to pass over an ordinary dial up line (modem).
- What you get with a slip/ppp connection is virtually full access to the
- Internet, including all the current services, and access to any services
- that might appear in the future. The big difference between slip/ppp and
- a "true" Internet connection is speed. With a slip/ppp interface, for example,
- you are not going to be able to listen to live audio programming, or watch live
- TV, or do anything else that requires high data rates.
-
- WHY USE DIRECT (SLIP/PPP) ACCESS ?
-
- Direct access changes the way you work on the Internet:
-
- 1. You can use graphical "front ends" such as provided with IAK.
-
- 2. You can operate more than one access program at one time.
-
- 3. You can use the new "advanced access" programs like Mosaic or Web Browser,
- which require a direct connection.
-
- As an example, I can open an IRC (Internet Relay Chat) channel to #os/2, the
- os/2 channel, and leave that running up in the corner of the screen while I
- read my mail, telnet to another computer, access an ftp site, etc.
-
- WHY NOT USE IBM ADVANTIS ?
-
- IBM advantis is a true SLIP service offered by IBM in major cities and also by
- 800 number dialup. Disregarding the monthy access fees for the moment, if you
- are lucky enough to live close to one of their local access dialups, you can
- get access for no hourly rate up to the 6 hour limit. If not, you must pay a
- $6.00 an hour fee for the 800 number service. Past the 6 hour limit, you pay
- a $4.00 an hour fee for local, and if you need to use the 800 number, you must
- pay that fee as well. So you can wind up paying $10 an hour.
- In my example, I live in the bay area, where I have two Internet providers on
- a no-limit/no-hour charge basis, I live in the next exchange from an IBM local
- access number. The cheapest I can dial there is $0.05/hour, so I get $3.00 in
- the hour limit, and $9.00 over that limit. At that is on the weekends only,
- by special rate.
-
- WHY NOT USE ANOTHER SLIP PROVIDER ?
-
- In my area I am lucky. I have two independent providers, both who will give
- slip service. However, one provides business accounts only (at ridiculous
- rates). The other provides slip at a $2.00 hour rate. This is better for me
- the $3.00 minimum access fee for IBM, and there is no hourly limit.
-
- WHAT IS TIA ?
-
- If you step back a minute, you have to ask what is really so different about
- a slip/ppp access from a dialup that accounts for the higher charges. The
- equipment is the same. The speeds are the same. What you are going to do with
- it is basically the same. It may even LESSEN the load on the provider if you
- use slip (see below).
- Well, it turns out that if you have a shell account, you can actually make
- a "do it yourself" slip connection. You just need a program that runs on your
- provider's host system, and talks to your computer in slip/ppp protocol.
- It essentially does the same thing they must do to give you a slip/ppp line
- when you pay "full price".
- Because this "adapter" works over the same speed lines that you would use for
- a paid slip/ppp line, and has virtually no difference in overhead, you are
- getting a slip line for the price of a shell account.
- So now you have slip with no hourly access charge, no time limits, and
- virtually no difference from a "real" slip account. Duh.
- TIA itself cost $25 (one time charge), which will rapidly pay for itself.
-
- HOW DOES TIA WORK ?
-
- TIA stands for "The Internet Adapter".
- Basically, TIA takes packets of TCP/IP data that pass to/from your computer
- in slip form and uses the host resources to pass them on to the Internet
- (the TIA FAQ is going to do more justice to this subject than me). The most
- important difference between a TIA link and a slip link is that a TIA link
- does not represent a real address on the Internet, and therefore must represent
- it's own address as a "virtual" address. Actually, TIA is good at handling
- "virtual addresses" and we can use this to solve several problems (below).
- TIA is not a program that runs on your PC. TIA runs on the provider's host CPU.
- This means that the folks at Cyberspace (makers of TIA) have to compile it for
- each possible machine type that is in use.
-
- HOW DO I GET TIA ONLINE ?
-
- First I recommend you obtain the file marketplace.com:/tia/tia.FAQ.single,
- marketplace.com:/tia.single.instruct, and marketplace.com:/tia.single.form.txt.
-
- FIRST, you need to determine the type of machine, then download TIA to your
- host machine (the machine you connect to). DO THIS BEFORE YOU GET A USER
- LICENCE. See the TIA FAQ to help you determine which TIA program is correct for
- your host. Typically, this will be something like "sparc.sunos.tia", which
- means a sparc CPU, running the sunos operating system.
- Rename this file to "tia" on your host, then execute:
-
- chmod +x tia
-
- Which tells it to allow execution of tia. Now you run tia. It should sign on,
- and give you a message about "cannot find licence".
- The reason you want to do this first is that you want to be sure that
- everything is set up before you start the time running on your evaluation
- period.
- Next, you fill in the tia.single.form.txt file, and send that (email) to
- tia-single@marketplace.com. Go for the evaluation period FIRST. That way
- you can check your system out first before you buy.
-
- Ok, now you can have the files:
-
- tia - The TIA executable
- .tia - The text file that contains the licence number
- .tiarc - A file containing startup parameters for TIA
- .tiacf - This appears to contain a copy of the login information messages
- that TIA generates on startup.
-
- When started "by hand" TIA can be killed with 5 or more ctl-c's. However, under
- IAK you will be starting TIA automatically, so you will terminate it by hanging
- up.
- Next, you must change your login prompt or add something to the end of the
- prompt. Do do this, you edit your .login script on the host, and for example,
- add the line:
-
- set prompt=joeuser\>
-
- (replacing any previous prompt command).
- Reason that you do this is to allow the dialup script a way to know when the
- host prompt appears, so that it can execute the TIA startup command.
-
- HOW DO YOU CONFIGURE IAK TO ACCESS VIA TIA ?
-
- FIrst, you need to create an access profile via the "dial other provider" menu
- under warp. Here are the fields and buttons:
-
- [PAGE 1]
-
- Provider name: The name of your dialup provider. I just entered my provider
- name, not the address, so I have to wonder if this field actually does
- anything (but os/2 will not allow it to be blank).
-
- Login ID: place your login ID just as you would enter it for shell access here.
-
- Password: place your password just as you would enter it for shell access here.
-
- Nickname: What is this used for ?
-
- Phone number: Leave blank
-
- Login script: This should point to your script that automatically dials the
- host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
- For the files we give here, this line must also have parameters. This is an
- example line:
-
- c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
-
- The first parameter gives the string to send to your modem to dial the host.
- The second gives the user name to log in by, and the third gives the password
- to use.
-
- Connection type: Can only be slip. PPP is grey because it is unimplemented by
- IBM, and is presumably on their "to do" someday.
-
-
- Inactivity timeout: Can be set to your pleasure. Note that many access
- providers will automatically logout you out if inactive.
-
- [PAGE 2]
-
- MTU size: must be 1500 (see the TIA FAQ).
-
- Domain name server: For this, log in to your shell account, and enter
- "tia -address". It will give you this information.
-
- Your host name: is the name of your machine. It should normally be the same
- as your login name. This sets the name the programs running think your
- machine goes by.
-
- Your domain name: The machine name of your provider, such as bignet.com.
-
- [PAGE 3]
-
- News server: The address of a nntpd compatible news server. Your provider may
- be able to give you this. However, it is possible that you may need to set up
- your own nntpd server. Since NETCOM is the only provider that currently
- lacks such a server, I have put that information in that section.
-
- Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
- server.
-
- WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW
- server.
-
- POP mail server: This is the server that will handle your mail requests.
- This can usually be any host machine. You may want to pick a machine that
- has a low normal load.
-
- Reply domain: the host name of your provider, like biglink.com.
-
- Reply mail ID: Same as your login ID
-
- POP mail login: Same as your login ID. The mail login uses an ID and
- password just as your account does.
-
- POP mail password: Same as your login password.
-
- [PAGE 4]
-
- Should be self explainitory, it contains all your modem port parameters. The
- question is, does any of this have an effect since the login script does
- the modem dialing ?
-
- Now you should have your provider dialer configured. Next, you need to find or
- create a slipup.cmd file, and place that under \tcpip\etc. See the specific
- implementations for various scripts.
-
- Next, you need to create a file, \tcpip\etc\hosts, which should appear as:
-
- 192.0.2.1 <your login name>
-
- What this file does is tell tcpip programs how to convert the address of your
- machine to a host name. Sendmail (part of the UltiMail) program does this,
- and this file gives the name before it is requested via a domain name server.
- This must be done because you don't really have an address for your host.
- You are just faking a "virtual address" under TIA. If one of your programs
- asks a real Internet domain nameserver to lookup that address, it will go
- "huh?" and the program will fail.
-
- Next, you need to find or create a file \tcpip\etc\sendmail.uml. Edit it and
- find the lines:
-
- # The unqualified (domain-less) name of the mail relay
- DVYourRelay
-
- # The fully-qualified domain name of the mail hub
- DHYourHub
-
- Replace "YourRelay" with the mail relay name, and "YourHub" with the mail hub.
- This information is provider specific. I have placed examples in the provider
- specific areas below.
-
- At this point, you should be able to hit the "dial" button under "other
- provider", and watch the slip connection start up in the status window.
-
- WHY CAN"T I SEND MAIL FROM ULTIMAIL ? I CAN RECEIVE IT !
-
- The mail from UltiMail is sent out via "sendmail.exe". This program has
- a few oddities. For example, it gets your login name and password from
- page 1 in the "other dial" form, instead of the POP mail section on page 3.
- UltiMail also takes the address of your machine and asks the listed domain
- server to look up the symbolic name (even though this information is in
- the dialer form). This is not good on TIA, because we don't really have
- an Internet address when on TIA. Instead, the host address is a made up,
- virtual address that only TIA understands. When sendmail asks a real
- Internet domain name server what that address means, it just says
- "no such address", so sendmail bombs.
- The fix for this is to create a file \tcpip\etc\hosts, and add or change
- \tcpip\etc\sendmail.uml as described in the last section.
-
- FTPPM TAKES FOREVER TO CONNECT, WHAT IS GOING ON ?
-
- FTP-PM takes too long to connect (and to do anything) on even regular
- SLIP/PPP service. I have waited (apparently forever) for it to connect
- on a TIA access. Some folks report that this works ok. In any case,
- use of a text based FTP or the web browser seems to be preferable.
-
- HOW CAN I GET AN ORDINARY SHELL LOGIN TO MY HOST WHILE RUNNING TIA ?
-
- You can telnet back to your host. Then you just log in as usual.
- Alternately, you can create a "special address" that can connect
- you to anything. First, you add a line to your .tiarc on the host machine:
-
- -p192.0.2.4 csh
-
- This causes TIA to "fake" an address that will connect only to the csh
- program. This will work for any program, not just csh.
- Then, you telnet to it:
-
- telnet 192.0.2.4
-
- NOTE: TIA has an older telnet server capability that IBM's telnet does not
- work with. Use another telnet instead.
-
- DOES TIA TAKE UP MORE OF THE HOST'S TIME THAN A SHELL ACCOUNT ?
- IS THAT WHY THEY CHARGE MORE FOR SLIP ?
-
- Given that you do the same things (email, gopher, etc) using TIA as you
- did under the shell, using TIA will actually use LESS of the host's time
- than a shell account. This is because the data sent via tcp/ip packets
- is the more compact, computer encoded version of the data being used, and
- because your computer is doing more of the work (since it is actually running
- the access programs).
- On the other hand, since TIA enables the use of programs like Web Browser,
- which take much more bandwidth to run, you may use more host computer time
- simply because you can do more.
-
- IS TIA BEING BANNED FROM VARIOUS SYSTEMS ? WHY ?
-
- I have heard that this is happening. We use TIA regularly on Netcom
- without complaint (and indeed, netcom already provides their own, proprietary
- method to do the same thing).
- Optimistically, you can say that the providers may see this as a security
- problem, since TIA accesses to the net may be more difficult to log.
- Cynically, you could say that the providers don't want the competition for
- their higher priced slip/ppp services.
-
- WHAT IS THE DIFFERENCE BETWEEN SLIP AND PPP ? WHY IS PPP NOT USED ?
-
- PPP is the more advanced protocol designed to replace SLIP. It is said to
- be harder to crash with communications errors. One feature that PPP has
- that would be quite usefull is that PPP can be set to "connect on demand",
- which means that it would only dial up the provider when there is actual
- data to be transferred, but to be done correctly, this needs to be implemented
- on both sides of the line (because the host side must dial you when you
- get data inbound). This is the method used by one provider along with ISDN,
- and may indeed be the future. At this writing, IBM has added beta PPP support.
- TIA is said to be going to PPP RSN :)
-
- HOW DO I CONNECT TO NETCOM ?
-
- Netcom does not have a nntpd compatible news server. All Netcom nodes that I
- know of run sparc computers with the sunos operating system (a sun specific
- unix variant). Because the news problem was just solved at the time of this
- FAQ, you need to get special versions and setups for TIA. Go to
- marketplace.com:/tiabeta. Get sparc.sunos.tia, which is the TIA server you
- need. Then get sparc.sunos.nntpd which is the newserver.
- rename them to tia and nntdp respectively.
- nntpd is a program that acts as a nntpd server much the way that nntpd works,
- by accessing the host and tranlating the requests into tcpip format. What we
- then do is assign nntpd a "virtual" tcpip address, then we can direct the news
- reader requests to that.
- Then, perform the lines:
-
- chmod +x tia
- chmod +x nntdp
-
- This will allow you to execute both programs.
- Next, create the file ".tiarc", which is the TIA automatic startup file, with
- the content:
-
- -p:119 nntpd
-
- This file tells TIA to create a virtual channel at 192.0.2.3 to access the news
- server created.
- Next, you must change your login prompt or add something to the end of the
- prompt. Do do this, you edit your .login script on the host, and for example,
- add the line:
-
- set prompt=joeuser\>
-
- (replacing any previous prompt command).
-
- Here are the specific "other dialer" form entries for netcom:
-
- [PAGE 1]
-
- Provider name: netcom
-
- Login ID: place your login ID just as you would enter it for shell access here.
-
- Password: place your password just as you would enter it for shell access here.
-
- Nickname: What is this used for ?
-
- Phone number: Leave blank
-
- Login script: This should point to your script that automatically dials the
- host and starts TIA running. Usually it is <drive>\tcpip\etc\slipup.cmd
- For the files we give here, this line must also have parameters. This is an
- example line:
-
- c:\tcpip\etc\slipup atdt555-1212 joeuser secretpass
-
- The first parameter gives the string to send to your modem to dial the host.
- The second gives the user name to log in by, and the third gives the password
- to use.
-
- Connection type: Can only be slip. PPP is grey because it is unimplemented by
- IBM, and is presumably on their "to do" someday.
-
-
- Inactivity timeout: Can be set to your pleasure. Note that netcom will
- automatically logout you out if inactive.
-
- [PAGE 2]
-
- MTU size: must be 1500 (see the TIA FAQ).
-
- Domain name server: For this, log in to your shell account, and enter
- "tia -address". It will give you this information.
-
- Your host name: is the name of your machine. It should normally be the same
- as your login name. This sets the name the programs running think your
- machine goes by.
-
- Your domain name: netcom.com
-
- [PAGE 3]
-
- News server: 192.0.2.3
-
- Gopher server: can be anything. Try os2info.gopher.ibm.com, the IBM gopher
- server.
-
- WWW server: can be anything. Try http://www01/ny.us.ibm.net, the IBM WWW
- server.
-
- POP mail server: netcom18 (this was determined to be the netcom node with
- the lightest load).
-
- Reply domain: netcom.com
-
- Reply mail ID: Same as your login ID
-
- POP mail login: Same as your login ID. The mail login uses an ID and
- password just as your account does.
-
- POP mail password: Same as your login password.
-
- [PAGE 4]
-
- Fill with modem parameters.
-
- Ok, here is the "slipup.cmd" file for netcom. You must customize the variables
- at the top to reflect your modem setup. You must also set CommandKey equal to
- the unique command prompt string you entered while configuring the host
- (above). Cut the result out and place it in \tcpip\etc\slipup.cmd.
-
- /* version: 1.13 */
- /* ------------------------------------------------------------------------*/
- /* OS/2 slipup.cmd heavily modified for netcom/tia users and probably of */
- /* value for to other people that need a decent slipup.cmd script. */
- /* */
- /* Any problems should be addressed to rupa@netcom.com or rupa on #os/2 */
- /* */
- /* Changes: */
- /* System specific stuff SHOULD be in the "user setup variables" */
- /* section. Let me know if I missed something. */
- /* Added 'smart' redialer. */
- /* Pulled login stuff from the main body and made it handle */
- /* problems if login: or password: never shows up. */
- /* Cleaned up some of the code, dynamic addressing for the OS/2 */
- /* box is cleaned out, if anyone wants this back in the */
- /* code is just commented out (though untested). */
- /* Added support for TERM = -- stolen from peetah's mods */
- /* ------------------------------------------------------------------------*/
- /* files:: ftp.netcom.com:/pub/rupa/tia/netcom.slipup.cmd */
- /* for hosts like netcom where you login directly into */
- /* your host. */
- /* ------------------------------------------------------------------------*/
-
- /* user setup variables */
-
- /* unique string for command prompt */
- CommandKey='<replace me with a command prompt>'
-
- /* set the comport you use */
- ComPort='com2'
-
- /* options for the "mode" system call */
- ModeOptions='57600,n,8,1,buffer=on,rts=hs,dtr=on'
-
- /* does your host ask you what terminal you use? */
- /* 1 if it does, 0 if not */
- AskTerm=0
-
- /* Modem INIT string */
- ModemInit='ATZ'
-
- /* delay after BUSY */
- BusyDelay=5
-
- /* delay after NO CARRIER */
- NoCDelay=2
-
-
- /*--------------------------------------------------------------------------*/
- /* */
- /* OS/2 2.0 SLIP Driver for IBM TCP/IP version 2.0 */
- /* */
- /* SLIPUP.CMD */
- /* */
- /* .................................................. */
- /* */
- /* Sample attachment script for dialing into a Xylogics Annex terminal */
- /* server in order to establish a SLIP connection. This script should be */
- /* specified using the "attachcmd" and "attachparm" elements in the SLIP */
- /* configuration file SLIP.CFG. For example: */
- /* */
- /* interface sl0 { */
- /* attachcmd = slipup */
- /* attachparm = "dialcmd username password" */
- /* } */
- /* */
- /* The script parameters specify the command to send to the modem to dial */
- /* the remote site and the username/password combination to use to log into */
- /* the terminal server. If any of the parameters are omitted, or are */
- /* specified as an asterix (*), the script will prompt for them. This is */
- /* most useful with the password parameter to avoid storing the password */
- /* in a text file on the disk. */
- /* */
- /* For example, the following might be how I would set it up: */
- /* */
- /* interface sl0 { */
- /* attachcmd = slipup */
- /* attachparm = "atdt###-#### db3l *" */
- /* } */
- /* */
- /* which would cause slipup to initially prompt me for the password. It */
- /* would then feed the "atdt###-####" command to the modem, and when the */
- /* Annex answered, it would use "db3l" as a username and the password I */
- /* initially entered as the password. */
- /* */
- /* - - - - - - - - - - - - - - - - - - - - - - - - - */
- /* */
- /* When the script runs, it is automatically passed the interface name for */
- /* the interface it is running on as the first argument, and the user */
- /* arguments (from SLIP.CFG) as the second argument. */
- /* */
- /* The script sends the dial string to the modem and then logs into the */
- /* terminal server using the username/password. It then issues the SLIP */
- /* command to start SLIP, and parses the resulting output to determine the */
- /* appropriate addresses to use. Lastly, it issues ifconfig and route */
- /* commands to configure the OS/2 system appropriately. Note that the */
- /* configuration assumes a class C netmask for the SLIP interface. */
- /* */
- /*--------------------------------------------------------------------------*/
-
-
- call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysloadFuncs'
- call SysLoadFuncs
-
- parse arg interface , dialcmd username password
-
- /*--------------------------------------------------------------------------*/
- /* Initialization and Main Script Code */
- /*--------------------------------------------------------------------------*/
-
- /* Set some definitions for easier COM strings */
- cr='0d'x
- crlf='0d0a'x
-
- say ''
- say 'SLIPUP - SLIP Script ',
- '(interface' interface')'
-
- /* Prompt for missing information */
- if dialcmd = '' then do
- call charout , 'Dial Command: '
- parse pull dialcmd
- end
- if username = '' | username = '*' then do
- call charout , 'User Name: '
- parse pull username
- end
- else do
- say 'User:' username
- end
- if password = '' | password = '*' then do
- call charout , 'Password: '
- password = readpass()
- end
-
- /* set comport speed */
- 'mode 'ComPort||': ' ModeOptions
-
- /* Flush any stuff left over from previous COM activity */
- call flush_receive
-
-
- /* dial the number and all that */
- connected=0
- DO FOREVER UNTIL connected
- CALL SetModem
-
- IF Dial()=1 THEN DO
- SAY 'Something wrong, either VOICE or ERROR returned after'
- SAY 'the dial() command. Aborting...'
- EXIT
- END
-
- IF Login()=1 THEN DO
- /* hang up */
- 'mode '||ComPort||': dtr=off > \dev\nul'
- 'mode '||ComPort||': dtr=on > \dev\nul'
- SAY 'Retrying connection after 30sec delay.'
- CALL SysSleep 30
- END
- ELSE DO
- connected = 1
- END
- END
-
-
- /* Wait for the main prompt and then send the "slip" command */
-
- if waitfor(CommandKey, 60) =1 THEN DO
- call flush_receive 'echo'
- CALL LineOut , 'Never got "'||CommandKey||'". Check your setup!'
- EXIT 1
- END
- call flush_receive 'echo'
-
- call send 'tia -address' || cr
-
- /* Parse the results of the SLIP command to determine our address. */
- /* We use the "waitfor_buffer" variable from the waitfor routine */
- /* to parse the stuff we get from the Annex after waiting for an */
- /* appropriate point in the data stream. */
- if waitfor(CommandKey, 60) =1 THEN DO
- call flush_receive 'echo'
- CALL LineOut , 'Never got "'||CommandKey||'". Your host may be severly loaded!'
- EXIT 1
- END
- call flush_receive 'echo'
- parse var waitfor_buffer . 'Gateway address):' a '.' b '.' c '.' d (cr) .
- annex_address = a||'.'||b||'.'||c||'.'||d
-
- /* WE DON'T USE THIS WITH TIA!
- /* Now parse the remainder for our address */
-
- call waitfor crlf
- parse var waitfor_buffer a '.' b '.' c '.' d '.' .
- os2_address = a||'.'||b||'.'||c||'.'||d
- */
-
- os2_address = 192.0.2.1
-
- /* Flush anything else */
- call flush_receive 'echo'
-
- call send 'exec tia' || cr
-
- if waitfor('SLIP software.', 60) =1 THEN DO
- call flush_receive 'echo'
- CALL LineOut , 'Never got OK to start slip software.'
- EXIT 1
- END
- call flush_receive 'echo'
-
- /* Now configure this host for the appropriate address, */
- /* and for a default route through the Annex. */
-
- say cr || 'SLIP Connection Established'
- say 'Configuring local address =' os2_address ', Annex =' annex_address
-
- 'ifconfig sl0' os2_address annex_address 'netmask 255.255.255.0'
- 'route -f add default' annex_address '1'
-
- /* All done */
- exit 0
-
- /*-------------------------------------------------------------------------*/
- /* SetModem() */
- /*.........................................................................*/
- /* Sets the modem and hopefully everybody is happy when done... */
- /* We have to be very paranoid with "waitfor" or we hang the dialer. */
- /*-------------------------------------------------------------------------*/
- SetModem:
- successful=0
- DO UNTIL successful=1
- call send ModemInit || cr
- if waitfor('OK', 5) = 1 then DO
- call flush_receive 'echo'
- call lineout , 'Modem not resetting... Trying again'
- call send '+++'
- IF waitfor('OK' ,5) = 1 THEN DO
- CALL LineOut , 'could not reset modem. Check your modem settings!'
- EXIT
- END
- END
- ELSE DO
- CALL flush_receive 'echo'
- successful=1
- END
- END
- RETURN 1
-
- /*-------------------------------------------------------------------------*/
- /* dial() */
- /*.........................................................................*/
- /* Dials the number with some extra error handling above and beyond the */
- /* normal stuff- */
- /*-------------------------------------------------------------------------*/
-
- dial:
-
- do forever
- /* Dial the remote server */
- call charout , 'Now Dialing...'
- call send dialcmd || cr
- /* catch first cr from modem after dialing */
- rc=waitfor(cr , 10); CALL flush_receive 'echo'
- /* now parse the return from the modem, give time to return code */
- rc=waitfor(cr, 120);
-
- SELECT;
- WHEN Pos('CONNECT', remain_buffer) \= 0 THEN DO
- CALL flush_receive 'echo'
- LEAVE
- END
- WHEN Pos('BUSY', remain_buffer) \= 0 THEN DO
- CALL flush_receive 'echo'
- CALL SysSleep BusyDelay
- ITERATE
- END
- WHEN Pos('NO CARRIER', remain_buffer) \= 0 THEN DO
- CALL flush_receive 'echo'
- CALL SysSleep NoCDelay
- ITERATE
- END
- WHEN Pos('ERROR', remain_buffer) \= 0 THEN DO
- /* something seriously wrong */
- CALL flush_receive 'echo'
- RETURN 1
- END
- WHEN Pos('VOICE', remain_buffer) \= 0 THEN DO
- /* don't wanna disturb 'em too much */
- CALL flush_receive 'echo'
- RETURN 1
- END
- OTHERWISE DO
- /* cannot happen */
- CALL flush_receive 'echo'
- SAY 'oops! Missed a possible return. send bug report to'
- SAY 'rupa@netcom.com with a screen shot.'
- LEAVE
- END
- END /* select */
- END /* do */
- RETURN 0
-
- /*-------------------------------------------------------------------------*/
- /* login() */
- /*.........................................................................*/
- /* Handle the login process with the proper error checking and all that. */
- /*-------------------------------------------------------------------------*/
-
- login:
- /* Handle login. We wait for standard strings, and then flush anything */
- /* else to take care of trailing spaces, etc.. */
- call send cr
- IF waitfor('login:',30)=1 THEN DO
- call flush_receive 'echo'
- SAY crlf||'No login.'
- RETURN 1
- END
- ELSE DO
- call flush_receive 'echo'
- call send username || cr
- END
-
- IF waitfor('Password:',30)=1 THEN DO
- SAY crlf||'No Password.'
- RETURN 1
- END
- ELSE DO
- call flush_receive 'echo'
- call send password || cr
- END
-
- IF AskTerm=1 THEN DO
- IF waitfor('TERM = ',30)=1 THEN DO
- SAY crlf||'Terminal emulation not set to default.'
- RETURN 1
- END
- ELSE DO
- call flush_receive 'echo'
- call send cr
- END
- END
-
- RETURN 0
-
- /*--------------------------------------------------------------------------*/
- /* send ( sendstring) */
- /*..........................................................................*/
- /* */
- /* Routine to send a character string off to the modem. */
- /* */
- /*--------------------------------------------------------------------------*/
-
- send:
-
- parse arg sendstring
- call slip_com_output interface , sendstring
-
- return
-
-
- /*--------------------------------------------------------------------------*/
- /* waitfor ( waitstring , [timeout] ) */
- /*..........................................................................*/
- /* */
- /* Waits for the supplied string to show up in the COM input. All input */
- /* from the time this function is called until the string shows up in the */
- /* input is accumulated in the "waitfor_buffer" variable. */
- /* */
- /* If timeout is specified, it says how long to wait if data stops showing */
- /* up on the COM port (in seconds). */
- /* */
- /*--------------------------------------------------------------------------*/
-
- waitfor:
-
- parse arg waitstring , timeout
-
- if timeout = '' then
- timeout = 5000 /* L O N G delay if not specified */
- waitfor_buffer = '' ; done = -1; curpos = 1
- ORI_TIME=TIME('E')
-
- if (remain_buffer = 'REMAIN_BUFFER') then do
- remain_buffer = ''
- end
-
- do while (done = -1)
- if (remain_buffer \= '') then do
- line = remain_buffer
- remain_buffer = ''
- end
- else do
- line = slip_com_input(interface,,10)
- end
- waitfor_buffer = waitfor_buffer || line
- index = pos(waitstring,waitfor_buffer)
- if (index > 0) then do
- remain_buffer = substr(waitfor_buffer,index+length(waitstring))
- waitfor_buffer = delstr(waitfor_buffer,index+length(waitstring))
- done = 0
- end
- call charout , substr(waitfor_buffer,curpos)
- curpos = length(waitfor_buffer)+1
- if ((done \= 0) & (TIME('E')>timeout)) then do
- call lineout , ' WAITFOR: timed out '
- done = 1
- end
- end
- timeout=0
- RC=done
- return RC
-
-
-
- /*--------------------------------------------------------------------------*/
- /* readpass () */
- /*..........................................................................*/
- /* */
- /* Routine used to read a password from the user without echoing the */
- /* password to the screen. */
- /* */
- /*--------------------------------------------------------------------------*/
-
- readpass:
-
- answer = ''
- do until key = cr
- key = slip_getch()
- if key \= cr then do
- answer = answer || key
- end
- end
- say ''
- return answer
-
-
- /*--------------------------------------------------------------------------*/
- /* flush_receive () */
- /*..........................................................................*/
- /* */
- /* Routine to flush any pending characters to be read from the COM port. */
- /* Reads everything it can until nothing new shows up for 100ms, at which */
- /* point it returns. */
- /* */
- /* The optional echo argument, if 1, says to echo flushed information. */
- /* */
- /*--------------------------------------------------------------------------*/
-
- flush_receive:
-
- parse arg echo
-
- /* If echoing the flush - take care of waitfor remaining buffer */
- if (echo \= '') & (length(remain_buffer) > 0) then do
- call charout , remain_buffer
- remain_buffer = ''
- end
-
- /* Eat anything left in the modem or COM buffers */
- /* Stop when nothing new appears for 100ms. */
-
- do until line = ''
- line = slip_com_input(interface,,100)
- if echo \= '' then
- call charout , line
- end
- return
-
- ******************************* end of slipup.cmd file ***********************
-
- Hosts file: create the file: \tcpip\etc\hosts:
-
- 192.0.2.1 <your login name>
-
- Finally, cut and place the next file under \tcpip\etc\sendmail.uml, or modify
- your existing sendmail.uml with the following lines:
-
- # The unqualified (domain-less) name of the mail relay
- DVmail.netcom.com
-
- # The fully-qualified domain name of the mail hub
- DHnetcom.com
-
- Replacing the existing lines.
- Here is the file for my system, which should also work on any netcom system.
- Note that all system programs are assumed to be on drive C:, so that would
- need to be changed if they have moved.
-
- ########################################################################
- # #
- # #
- # Sendmail #
- # Copyright (c) 1983 Eric P. Allman #
- # Berkeley, California #
- # #
- # Copyright (c) 1983 Regents of the University of California. #
- # All rights reserved. The Berkeley software License Agreement #
- # specifies the terms and conditions for redistribution. #
- # #
- # This configuration file was created specifically for IBM's #
- # SENDMAIL product for the IBM OS/2 Operating System. Please avoid #
- # making changes to this file, as it will change the operation of #
- # SENDMAIL. #
- # #
- # This configuration file is used for outgoing mail in two ways: #
- # 1. All mail is sent to a mail relay for delivery #
- # 2. All addresses are rewritten if necessary to make them look #
- # like they came from a mail hub #
- # #
- # Created by: William Chung for IBM Ultimedia Mail/2 "Lite" #
- # and IBM NR/2 #
- # IBM T.J. Watson Research, Yorktown Heights, NY #
- # September 23, 1994 #
- ########################################################################
-
- #
- # Host-specific macros
- #
- # Note: The values of these macros are merely placeholders.
- # Actual values will get substituted later at delivery
- # time when sendmail is invoked with the -oM command
- # line flag to override these configuration file values.
- #
-
- # The unqualified (domain-less) name of the mail relay
- DVmail.netcom.com
-
- # The fully-qualified domain name of the mail hub
- DHnetcom.com
-
- # Version # of this file
- DZ1.0um
-
- # Official canonical hostname.
- #
- # Do not bother setting macro $w (hostname) since we do not use it
- # and sendmail will set it for us anyway.
- Dj$w
-
- #
- # Standard macros
- #
-
- # Name used for error messages
- DnMailer-Daemon
- # UNIX header format
- DlFrom $g $d
- # Delimiter (operator) characters
- Do.:%@!^=/[]
- # Format of a total name
- Dq<$g>
-
- #
- # Options
- #
-
- # Process messages in the background.
- Odbackground
- # Accept oldstyle addresses
- Oo
- # SMTP read timeout
- Or15m
- # Queue directory
- OQc:\tcpip\etc\mqueue
- # Always queue for safety
- Os
- # Time to live in the queue
- OT5d
-
- #
- # Message precedences
- # Note: use equal weight so we can let relay decide what to do
- #
- Pfirst-class=0
- Pspecial-delivery=0
- Pjunk=0
-
- #
- # Trusted users
- # Note: not used by OS/2 sendmail
- #
- Troot daemon
-
- #
- # Required headers
- #
- HReceived: $?sfrom $s $.by $j ($v/$Z) id $i; $b
- H?D?Date: $a
- H?F?From: $q
- H?M?Message-Id: <$t.$i@$j>
- H?D?Resent-Date: $a
- H?F?Resent-From: $q
- H?M?Resent-Message-Id: <$t.$i@$j>
- H?x?Full-Name: $x
-
- # Throw all mail to relay
- S0
- R$* $#relay $@$V $:$1
-
- # Rewrite local addresses so they look like they are from the hub
- S3
- R$*<$*<$*>$*>$* $3 denest
- R$*<$+>$* $2 basic RFC822 parsing
- R$*<>$* $n RFC1123 <>
- R$- $@ $1 @ $H user => user@hub
- R$+@$+ $: $1 @ $[$2$] canonify the hostname
- R$+@$w $@ $1 @ $H user@thishost => user@hub
- R$w!$+ $@ $2 @ $H thishost!user => user@hub
- R$+%$w $@ $>3 $1 @ $2 handle % hack thishost
- R$* $@ $1 default, unchanged
-
- #
- # Mail Delivery Agents
- #
- Mrelay, P=[IPC], F=mDFMuCX, S=0, R=0, A=IPC $h
- Mlocal, P=c:\tcpip\umail\umailer.exe, F=lsDFP, S=10, R=20, A=-dest c:\tcpip\umail\server\inbox -to $u
- Mprog, P=xxx, A=Required by sendmail but we do not use this
-
- # Sendmail configuration file *must* end with a newline - do not remove below newline
-
- WHERE CAN I FIND THE FILES ?
-
- FTP to marketplace.com for TIA binaries, FAQs and other documentation.
-
- FTP to ftp.netcom.com:/pub/rupa/tia and look at the readme. Here you will find
- the slipup.cmd files you need for various systems. It is recommended by the author
- of the files (rupa@netcom.com) that you get the latest version of slipup.cmd from
- his account.
-
- samiam@netcom.com
-